<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<h1>生成器</h1>
		<p>生成器是一个函数用 *装饰</p>
		<p>配合 yield关键字</p>
		<p>需要通过 next()进行遍历</p>
		<p>生成器执行完毕 返回的是迭代器 iter</p>
		<p>迭代器 执行next方法 返回会的是 yield生成内容</p>
		<p>每次生成器执行到yield时候就是停止</p>
		<p>迭代器可以通过for of 遍历</p>
		<script>
		// 生成一个1-100的迭代器
		/**
		 * @param {Number} min 最小值  例 1
		 * @param {Number} max 最大值  例 100 
		 * @param {Number} step 步长  例 1 
		 * @return {Iterator} 返回的可迭代对象
		 * @description  生成一个从min 到 max的可迭代对象
		 * @example 例子 
		 * for(var v of range(1,50,2)){
		 *	console.log(v);
		 *}
		 * */
		function *range(min,max,step=1){
			for(var i=min;i<max;i+=step){
				yield i;
			}
		}
		for(var v of range(1,50,2)){
			console.log(v);
		}
		
		
			/* function *gen(){
				yield 'a';
				yield 'b';
				yield 'c';
			}
			var iter = gen(); */
			/* var obj1 = iter.next();
			console.log(obj1);
			var obj2 = iter.next();
			console.log(obj2);
			var obj3 = iter.next();
			console.log(obj3);
			var obj4 = iter.next();
			console.log(obj4); */
			/* for(var v of iter){
				console.log(v);
			} */
			
		</script>
	</body>
</html>
